module.exports = class extends think.Logic {
  async getAction() {
    // 验证逻辑错误
    this.allowMethods = 'get'; // 允许 GET、POST 请求类型
    const rules = {
      type: { // 处理事件类型
        string: true, // 字段类型为 String 类型
        required: false, // 字段必填
        in: ['丢失', '捡到'], // 需要是 lost,found 其中一个
        trim: true, // 字段需要trim处理
        method: 'GET' // 指定获取数据的方式
      },
      key: { // 处理关键字检索
        string: true, // 字段类型为 String 类型
        required: false, // 字段必填
        trim: true, // 字段需要trim处理
        method: 'GET' // 指定获取数据的方式
      }
    };
    const flag = this.validate(rules);
    if (!flag) {
      return this.fail('validate error', this.validateErrors);
      // 如果校验失败，返回
      // {"errno":1000,"errmsg":"validate error","data":{"username":"username can not be blank"}}
    }
  }

  async postAction() {
    this.allowMethods = 'post'; // 允许 GET、POST 请求类型
    const rules = {
      address: { // 事件发生的地址
        string: true, // 字段类型为 String 类型
        required: true, // 字段必填
        trim: true, // 字段需要trim处理
        method: 'POST' // 指定获取数据的方式
      },
      title: { // 标题
        string: true, // 字段类型为 String 类型
        required: true, // 字段必填
        trim: true, // 字段需要trim处理
        method: 'POST' // 指定获取数据的方式
      },
      type: { // 处理事件类型
        string: true, // 字段类型为 String 类型
        required: true, // 字段必填
        in: ['丢失', '捡到'], // 需要是 lost,found 其中一个
        trim: true, // 字段需要trim处理
        method: 'POST' // 指定获取数据的方式
      },
      mobile: { // 联系人手机号码
        string: true, // 字段类型为 String 类型
        required: true, // 字段必填
        trim: true, // 字段需要trim处理
        regexp: /^1[38][1-9]\d{8}/g, // 正则表达式验证手机号码
        method: 'POST' // 指定获取数据的方式
      }
    };
    const flag = this.validate(rules);
    if (!flag) {
      return this.fail('validate error', this.validateErrors);
      // 如果校验失败，返回
      // {"errno":1000,"errmsg":"validate error","data":{"username":"username can not be blank"}}
    }
  }
};
